package org.jlamp.boot.runtime;

import org.jlamp.core.prop.SystemProp;

import java.io.File;

/**
 * JLamp运行时信息
 *
 * @author zhangcs
 * @since 1.0
 */
public class JlampInfo {

    /**
     * 加载的Agent路径
     */
    public static String AGENT_FILE;

    /**
     * 加载的Core文件路径
     */
    public static String SERVER_FILE;

    /**
     * 当前附着的进程ID，未进行附着时为null
     */
    public static String PROCESS_ID = null;

    static {
        AGENT_FILE = find("jlamp-agent.jar");
        SERVER_FILE = find("jlamp-server.jar");
    }

    /**
     * 获取文件
     *
     * @param fileName 文件名
     * @return 返回文件绝对路径
     */
    private static String find(String fileName) {
        // 当前目录
        File path = new File(fileName);
        if (path.exists()) {
            return path.getAbsolutePath();
        }

        // 获取环境变量
        String libEnv = SystemProp.JLAMP_LIB_DIR;
        if (libEnv != null) {
            File libPath = new File(libEnv + "/" + fileName);
            if (libPath.exists()) {
                return libPath.getAbsolutePath();
            }
        }

        // 获取Home路径
        path = new File(SystemProp.USER_HOME + "/" + fileName);
        if (path.exists()) {
            return path.getAbsolutePath();
        }

        // 未找到
        return null;
    }

}
